home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / lha_axeman / extract.c < prev    next >
C/C++ Source or Header  |  1995-09-01  |  1KB  |  46 lines

  1. /***********************************************************
  2.     extract.c -- extract file from archive
  3. ***********************************************************/
  4. #include "lharc.h"
  5. #include "intrface.h"
  6. extern int verify_mode;
  7.  
  8. int decode_lzhuf (infp, outfp, original_size, packed_size,name , method)
  9. FILE *infp;
  10. FILE *outfp;
  11. long original_size;
  12. long packed_size;
  13. char *name;
  14. int method;
  15. {
  16.   interface.method = method;
  17.   interface.dicbit = 13; /* method + 8; */
  18.   interface.infile = infp;
  19.   interface.outfile = outfp;
  20.   interface.original = original_size;
  21.   interface.packed = packed_size;
  22.  
  23.   switch (method)
  24.   {
  25.     case 0:
  26.     case 8:
  27.       start_indicator (name, original_size, verify_mode ? "Testing " : "Melting ",2048);
  28.       copyfile(infp, (verify_mode ? NULL : outfp), original_size, 2);
  29.       break;
  30.     case 6:    /* -lzs- */
  31.       interface.dicbit = 11;
  32.       start_indicator (name, original_size, verify_mode ? "Testing " : "Melting ", 1<<interface.dicbit);
  33.       decode(&interface);
  34.       break;
  35.     case 1: /* -lh1- */
  36.     case 4: /* -lh4- */
  37.     case 7: /* -lz5- */
  38.       interface.dicbit = 12;
  39.     default:
  40.       start_indicator (name, original_size, verify_mode ? "Testing " : "Melting ", 1<<interface.dicbit);
  41.       decode(&interface);
  42.   }
  43.   finish_indicator (name, verify_mode ? "Tested  " : "Melted  ");
  44.   return crc;
  45. }
  46.